# funbot

**FunBot** is an IRC bot written in Haskell. This is a fun and interactive way
to learn and experiment with Haskell, quickly seeing the results of the code
you write. The project was started after an idea was brought up in `#freepost`
channel: Write a bot collaboratively, the whole community together. Experiment,
learn and laugh in the process.

FunBot is free software, and is committed to software freedom and to freedom in
general. It is released to the public domain using the CC0 Public Domain
Dedication. See `COPYING`.

## Cheatsheet

- `!repo+ <host> <username> <repo> <channel>`: Add repo.
  Example: `!repo+ notabug fr33domlover funbot #freepost`
- `!repo- <host> <username> <repo>`: Remove repo
- `!spec+ <host> <username> <repo> <channel>`: Add another channel where git
  repo events will be announced. This must be used after a repo has already
  been added with `!repo+`.
- `!spec- <host> <username> <repo> <num>`: Remove git event announcement
  specification with the given index number (as found in the settings tree,
  i.e. starting from 1) from the given repo. See also `!spec+`.
  Note: To see the "settings tree" use the `!get` command, for example
  `!get repos.notabug.fr33domlover/funbot`.
- `!tell <nick>[:|,] <text>`: Private memo to user
- `!ctell <nick>[:|,] <text>`: Public memo (in channel) to user. Bot will
  speak in the channel where the command was issued.
- `!join <channel>`: Make funbot join a channel (requires privileges).
- `!leave <channel>`: Make funbot part a channel (requires privileges).

## Using

See the .cabal file for more info and link to project website and version
control.

The official download location is the Git repository:

<https://notabug.org/fr33domlover/funbot.git>

Occasionally, releases may be made to Hackage, the Haskell package repository.
See <http://hackage.haskell.org/package/funbot>.

Some of the dependency libraries may have recent features not released to
Hackage yet. See the guide linked at the bottom for their clone URLs. If you
use a released version of funbot, you can safely install all the dependencies
from Hackage as usual.

This program is free software, released to the public domain using the CC0
Public Domain Dedication. For the boring "legal" details see the file
`COPYING`.

See the file `INSTALL.md` for a detailed usage and deployment guide. The file
`ChangeLog` explains how to see the history log of the changes done in the
code. `NEWS.md` provides a friendly overview of the changes for each release.

## Reporting Bugs and Suggesting Features

If you found a bug, or you have an idea, a feature request or a wishlist item,
open a ticket for it! Even if you're going to implement something or try to
solve it yourself.

[Use NotABug's issue system](https://notabug.org/fr33domlover/funbot/issues).

## User/Contributor Guide

There is a detailed guide for running the bot and creating a development setup.
It's in the [`INSTALL.md`](/INSTALL.md) file.

If you're going to implement some feature or fix some bug you found,
**start by opening an issue** so that other people will know which features are
being developed and who does what.
